JavaScript можно сказать произошел от языка C++ и поэтому практически все операции свойственные Си присутствуют здесь тоже.
Унарные операции производят действие над одним операндом, поэтому характерны следующие операции:
| ++ | инкремент |
|---|---|
| -- | декремент |
| ! | логическое отрицание |
| - | унарное вычитание (смена знака на противоположный) |
Операции инкремента и декремента, также как и в языке Си, могут располагаться с правой или левой стороны операнда, т.е.
i++ ++i i-- --i
При этом, если операция стоит перед операндом, то сначала производится вычисление нового значения операнда в зависимости от операции, а потом оно используется в программе. Если же операция идет после операнда, то сначала используется значение операнда в программе, а потом производится операция уменьшения или увеличения. Все будет ясно из следующего примера:
K=3; L=K++; //L=3, K=4 L=++K; //L=5, K=5
Операция логического отрицания используется для изменения логического выражения на противоположное:
K = true; document.writeln(K); //"true" document.writeln(!K); //"false"
Бинарные операции требуют два операнда. К таким операциям относятся сложение(+), вычитание(-), деление(/) и деление по модулю(%).
Все операции выполняют теже функции, что и в других языках программирования. Отличие от языка С++ имеется только в операции деления, которая возвращает результат вещественного типа.
Все побитовые операции JavaScript идентичны операциям в языке Си:
| ~ | побитовое отрицание |
|---|---|
| << | Сдвиг влево |
| >> | Сдвиг вправо |
| >>> | Сдвиг вправо с заполнением нулями |
| & | Побитовое И (побитовое умножение) |
| | | Побитовое ИЛИ (побитовая сумма) |
| ^ | Побитовое исключающее ИЛИ (побитовая сумма по модулю два) |
Результатом всех этих побитовых операций является 32 битное число.